package com.ruoyi.iot.mapper;

import com.ruoyi.iot.domain.entity.DeviceThresholdConfig;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 阈值配置 Mapper
 */
@Mapper
public interface DeviceThresholdConfigMapper {

    /**
     * 查询指定设备的阈值配置
     *
     * @param deviceId 设备编号，为空时查询全局配置
     * @return 阈值配置集合
     */
    List<DeviceThresholdConfig> selectByDeviceId(@Param("deviceId") String deviceId);

    /**
     * 查询全部阈值配置
     *
     * @return 阈值配置集合
     */
    List<DeviceThresholdConfig> selectAll();

    /**
     * 查询阈值配置，附带指标中文含义
     *
     * @param query 查询条件
     * @return 结果集合（map 中含 metricLabel）
     */
    List<Map<String, Object>> selectWithMetricLabel(DeviceThresholdConfig query);

    /**
     * 新增阈值配置
     *
     * @param config 阈值配置
     * @return 影响行数
     */
    int insert(DeviceThresholdConfig config);

    /**
     * 修改阈值配置
     *
     * @param config 阈值配置
     * @return 影响行数
     */
    int update(DeviceThresholdConfig config);

    /**
     * 删除阈值配置
     *
     * @param id 主键ID
     * @return 影响行数
     */
    int deleteById(@Param("id") Long id);
}
